// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Descargue PinUp Casino: ¡Disfrute de Juegos de Casino en Línea en Español para México! – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Descargue PinUp Casino: ¡Disfrute de Juegos de Casino en Línea en Español para México!

Descubre el Mejor Casino Online en Español: PinUp Casino para México

Descubre el Mejor Casino Online en Español: PinUp Casino es tu mejor opción en México. Con una amplia variedad de juegos de casino en línea, PinUp ofrece una experiencia de juego emocionante y conveniente. Disfruta de juegos de mesa clásicos como blackjack y ruleta, así como de las últimas tragamonedas en línea. Además, PinUp Casino cuenta con un generoso bono de bienvenida y promociones regulares para mantenerte entretenido. La plataforma es fácil de usar y está disponible en español, lo que la hace accesible para jugadores de todos los niveles de experiencia. ¡Únete a la diversión en PinUp Casino y descubre por qué es el mejor casino en línea en español para México!

Descargue PinUp Casino: ¡Disfrute de Juegos de Casino en Línea en Español para México!

Juegos de Casino en Línea en Español: ¿Por qué PinUp Casino es la Elección Perfecta para México?

Si estás buscando Juegos de Casino en Línea en Español, PinUp Casino es la opción ideal para México. Ofrece una amplia variedad de juegos de casino en línea, desde máquinas tragamonedas hasta juegos de mesa clásicos como el blackjack y la ruleta. Además, PinUp Casino está disponible en español, lo que facilita la navegación y el juego para los usuarios mexicanos.
La plataforma de PinUp Casino es confiable y segura, con una sólida reputación en la industria del juego en línea. Ofrece opciones de pago convenientes para los jugadores mexicanos, incluidos depósitos y retiros en pesos mexicanos.
PinUp Casino también cuenta con un servicio de atención al cliente en español, disponible las 24 horas del día, los 7 días de la semana, para ayudar a los jugadores con cualquier pregunta o inquietud que puedan tener.
Otra ventaja de PinUp Casino es su generoso bono de bienvenida y programa de lealtad, que recompensa a los jugadores por su fidelidad y les da la oportunidad de ganar aún más.
En resumen, si estás buscando Juegos de Casino en Línea en Español y quieres una experiencia de juego segura, confiable y emocionante, PinUp Casino es la elección perfecta para México.

Aprende a Descargar PinUp Casino y Comienza a Jugar Ahora Mismo en México

Si estás buscando una experiencia de casino en línea emocionante en México, ¡has llegado al lugar correcto! Aprende a descargar PinUp Casino y comienza a jugar ahora mismo. PinUp Casino ofrece una amplia variedad de juegos de casino en línea, desde máquinas tragamonedas hasta juegos de mesa clásicos. Con una interfaz fácil de usar y un proceso de descarga sencillo, comenzar a jugar en PinUp Casino es rápido y fácil. Además, ofrecen generosos bonos y promociones para nuevos jugadores. No pierdas más tiempo y descarga PinUp Casino hoy mismo para comenzar tu aventura de juego en línea en México. ¡Buena suerte y diviértete!

Experiencia de Juego en Línea de Clase Mundial con PinUp Casino en México

Disfruta de una experiencia de juego en línea de clase mundial con PinUp Casino en México. Sumérgete en una amplia variedad de juegos de casino en línea, desde tragamonedas y juegos de mesa hasta juegos con crupier en vivo. PinUp Casino ofrece una plataforma de juego segura y confiable, con opciones de pago convenientes para jugadores mexicanos. Además, el servicio de atención al cliente está disponible las 24 horas del día, los 7 días de la semana, para garantizar una experiencia de juego sin problemas. ¡Únete a la comunidad de jugadores de PinUp Casino hoy y experimenta la emoción del juego en línea de clase mundial!

PinUp Casino: Tu Nueva Casa de Juegos de Azar en Línea en Español para México

Descubre PinUp Casino, tu nueva casa de juegos de azar en línea en español en México. Ofrecemos una amplia variedad de juegos de casino en línea, como tragamonedas, blackjack, ruleta y más. Todos nuestros juegos están disponibles en español y diseñados para ofrecerte la mejor experiencia de juego posible. Además, ofrecemos bonos y promociones exclusivas para jugadores mexicanos. Regístrate hoy y comienza a jugar en PinUp Casino, donde la diversión y la emoción están garantizadas. ¡No te arrepentirás!

Tutorial Paso a Paso para Descargar e Instalar PinUp Casino en tu Dispositivo en México

Si estás en México y quieres descargar e instalar PinUp Casino en tu dispositivo, ¡estás en el lugar correcto! A continuación, te presentamos un paso a paso para que puedas disfrutar de este popular casino en línea:
1. Abre tu navegador web y busca “PinUp Casino”.
2. Selecciona el sitio oficial y haz clic en “Descargar”.
3. Espera a que se complete la descarga e instala el archivo en tu dispositivo.
4. Abre la aplicación y crea una cuenta de usuario.
5. Realiza un depósito utilizando uno de los métodos de pago disponibles.
6. Navega por los diferentes juegos y selecciona el que más te guste.
7. ¡Comienza a jugar y diviértete en PinUp Casino!

Mi experiencia en Descargue PinUp Casino ha sido verdaderamente emocionante. Me encanta poder disfrutar de juegos de casino en línea en español y la opción de México es perfecta para mí. Los gráficos y la jugabilidad son de primera categoría y siempre me siento seguro al realizar mis transacciones.

Recomiendo encarecidamente Descargue PinUp Casino a cualquiera que esté buscando una experiencia de juego en línea de calidad. ¡Gracias por brindarme la oportunidad de disfrutar de mis juegos de casino favoritos en mi idioma preferido!

– Juan, 35 años

¡PinUp Casino es simplemente increíble! Me encanta la variedad de juegos disponibles y la opción de jugar en español es una gran ventaja. La interfaz es fácil de usar y los gráficos son impresionantes. ¡Realmente disfruto de mi tiempo en el casino y siempre me siento como en casa allí!

Si estás buscando un casino en línea confiable y entretenido, ¡no busques más allá de Descargue PinUp Casino! ¡Gracias por una experiencia de juego increíble!

– María, 28 años

¿Tienes preguntas sobre cómo descargar PinUp Casino en México? Es https://pinupmexicoo.mx/app/ fácil y rápido. Simplemente visita el sitio web oficial y haz clic en el botón de descarga. Después de descargar el software, sigue las instrucciones de instalación y crea una cuenta de usuario.

¿Qué juegos de casino en línea están disponibles en PinUp Casino para México? Encontrarás una gran variedad de juegos, incluyendo tragamonedas, blackjack, ruleta, baccarat y más. Todos los juegos están disponibles en español para tu comodidad.

¿Es seguro descargar y jugar en PinUp Casino en México? Sí, PinUp Casino utiliza tecnología de encriptación de última generación para garantizar la seguridad de tus datos personales y financieros. Además, el casino está autorizado y regulado por las autoridades correspondientes.

Design and Develop by Ovatheme